Remote Direct Memory Access (RDMA) typically allows a computer system to directly read or modify the memory of another computer system using “zero-copy,” which refers to a memory allocation technique that provides computer systems with the ability to directly write data to and read data from remote memory and allows applications that implement RDMA to access remote buffers directly without the need to copy it between different software layers. An RDMA-enabled network interface adapter establishes connections to transfer the data directly between specified buffers in the user-space memory. Accordingly, this zero-copy approach is much more efficient than requiring multiple data transfers on each side of the network.
Unfortunately, RDMA memory is typically pinned, which means that the kernel is not allowed to swap that memory out to a paging file in the event that the overall computer starts running short on available memory. Accordingly, under traditional techniques, RDMA memory is pinned and cannot be moved from a source memory location to a target memory location because the RDMA memory is pinned at the source memory location.